package day0326;

import java.util.Arrays;
import java.util.Scanner;

public class Test5 {
    public static void main(String[] args) {
        //变量ar存储了四个元素的数组的地址 0xfAC
        int[] ar={4,6,8,3};//原本的数组
        System.out.println("删除之前数组是" + Arrays.toString(ar));//四个元素
        //输入一个int数据，表示要删除的元素序号
        Scanner s=new Scanner(System.in);
        System.out.println("请输入一个int数据,范围在[0,"+ (ar.length-1)+"]" );
        int eleIndex=s.nextInt();
        //                          将ar存储了四个元素的数组的地址 0xfAC传给arr
        int[] delAr=Test5.delEmeFromArray(ar, eleIndex);
        //让delAr变量代表容量为3的数组(ar就无法操作{4,6,8,3}数组了)
        System.out.println( (delAr==null? "没删除任何元素" :    "删除之后数组是" +  Arrays.toString(delAr) ));//三个元素
        //如果delEmeFromArray()方法返回null，就打印"没删除任何元素"， 否则就打印被删除的元素。
        System.out.println(  (delAr==null? "没删除任何元素" :   "被删除的元素是："+ar[eleIndex] ));
    }

    /**
     * @param arr  存储元素的数组
     * @param index 要删除的元素序号
     * return 返回被删除的元素
     *///arr={4,6,8,3}         2
    //arr存储了四个元素的数组的地址 0xfAC
    public static int[] delEmeFromArray(int[] arr, int index){
        //要删除元素的序号index， 应该在[0,arr.length-1]
        if(0<=index && index<= arr.length-1){
            //通过arr将数组变成了4633           arr.length-index-1
            //复制arr数组，从index+1位开始复制， 往arr数组中存入，从index位置开始粘贴，复制的元素个数
            System.arraycopy(arr, index+1,   arr,  index,arr.length-index-1);
            //复制arr数组的前三位来产生一个新数组{4,6,3}， 让arr代表新数组
            arr=Arrays.copyOf(arr, arr.length-1);//对arr数组缩容一位。
            //将arr代表的容量为3的数组返回
            return  arr;
        }else{
            System.out.println("您输入的元素序号超范围，请重试");
            return null;
        }
    }
}
